/*-------------------------------------------------------------------------
 *
 * tzparser.h
 *	  时区偏移文件解析定义。
 *
 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/utils/tzparser.h
 *
 *-------------------------------------------------------------------------
 */
#ifndef TZPARSER_H
#define TZPARSER_H

#include "utils/datetime.h"

/*
 * 解析时区配置文件的结果是一个结构体数组，
 * 按照缩写顺序排列。我们导出这个因为 datetime.c
 * 需要它。
 */
typedef struct tzEntry
{
	/* 实际数据 */
	char	   *abbrev;			/* TZ 缩写（小写） */
	char	   *zone;			/* 如果为动态缩写，则为区域名称，否则为 NULL */
	/* 对于动态缩写，offset/is_dst 不使用 */
	int			offset;			/* 从 UTC 的秒数偏移量 */
	bool		is_dst;			/* 如果是 DST 缩写则为真 */
	/* 源信息（用于错误消息） */
	int			lineno;
	const char *filename;
} tzEntry;


extern TimeZoneAbbrevTable *load_tzoffsets(const char *filename);

#endif							/* TZPARSER_H */
